From ca2987a0f9afd0ea261d621e340ceacd232089c6 Mon Sep 17 00:00:00 2001 From: Cody Russell Date: Sun, 23 Mar 2008 15:37:40 +0000 Subject: [PATCH] Check window state for GDK_WINDOW_STATE_ICONIFIED before doing ShowWindow 2008-03-23 Cody Russell * gdk/win32/gdkevents-win32.c (show_window_recurse): Check window state for GDK_WINDOW_STATE_ICONIFIED before doing ShowWindow (SW_RESTORE). This fixes a problem where tearing off menus from a maximized window would force the window to restore its size. (#518846) svn path=/trunk/; revision=19926 --- ChangeLog | 8 ++++++++ gdk/win32/gdkevents-win32.c | 11 +++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index d30f1fe025..705ce561ae 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-03-23 Cody Russell + + * gdk/win32/gdkevents-win32.c (show_window_recurse): + Check window state for GDK_WINDOW_STATE_ICONIFIED before doing + ShowWindow (SW_RESTORE). This fixes a problem where tearing off + menus from a maximized window would force the window to restore + its size. (#518846) + 2008-03-23 Johan Dahlin * gtk/gtk-builder-convert: diff --git a/gdk/win32/gdkevents-win32.c b/gdk/win32/gdkevents-win32.c index 7841171620..3f4fdd5547 100644 --- a/gdk/win32/gdkevents-win32.c +++ b/gdk/win32/gdkevents-win32.c @@ -1297,9 +1297,16 @@ show_window_recurse (GdkWindow *window, gboolean hide_window) if (GDK_WINDOW_IS_MAPPED (window)) { if (!hide_window) - ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE); + { + if (GDK_WINDOW_OBJECT (window)->state & GDK_WINDOW_STATE_ICONIFIED) + { + ShowWindow (GDK_WINDOW_HWND (window), SW_RESTORE); + } + } else - ShowWindow (GDK_WINDOW_HWND (window), SW_MINIMIZE); + { + ShowWindow (GDK_WINDOW_HWND (window), SW_MINIMIZE); + } } impl->changing_state = FALSE; -- 2.30.2